From 7773ae45383360ba036046e7531d48e67812a3cf Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 14 Sep 2021 13:13:18 -0400 Subject: [PATCH] csstypes: Add annotations and inlines Inline _gtk_css_change_for_sibling and _gtk_css_change_for_child, and mark a few other functions as const or malloc. --- gtk/gtkcsstypes.c | 62 ------------------------------------ gtk/gtkcsstypesprivate.h | 69 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 67 deletions(-) diff --git a/gtk/gtkcsstypes.c b/gtk/gtkcsstypes.c index dd85bd58b1..fcbb47ca8d 100644 --- a/gtk/gtkcsstypes.c +++ b/gtk/gtkcsstypes.c @@ -22,68 +22,6 @@ #include "gtkcssnumbervalueprivate.h" #include "gtkstylecontextprivate.h" -GtkCssChange -_gtk_css_change_for_sibling (GtkCssChange match) -{ -#define BASE_STATES ( GTK_CSS_CHANGE_CLASS \ - | GTK_CSS_CHANGE_NAME \ - | GTK_CSS_CHANGE_ID \ - | GTK_CSS_CHANGE_FIRST_CHILD \ - | GTK_CSS_CHANGE_LAST_CHILD \ - | GTK_CSS_CHANGE_NTH_CHILD \ - | GTK_CSS_CHANGE_NTH_LAST_CHILD \ - | GTK_CSS_CHANGE_STATE \ - | GTK_CSS_CHANGE_HOVER \ - | GTK_CSS_CHANGE_DISABLED \ - | GTK_CSS_CHANGE_SELECTED \ - | GTK_CSS_CHANGE_BACKDROP) - -#define KEEP_STATES ( ~(BASE_STATES|GTK_CSS_CHANGE_SOURCE|GTK_CSS_CHANGE_PARENT_STYLE) \ - | GTK_CSS_CHANGE_NTH_CHILD \ - | GTK_CSS_CHANGE_NTH_LAST_CHILD) - - return (match & KEEP_STATES) | ((match & BASE_STATES) << GTK_CSS_CHANGE_SIBLING_SHIFT); - -#undef BASE_STATES -#undef KEEP_STATES -} - -GtkCssChange -_gtk_css_change_for_child (GtkCssChange match) -{ -#define BASE_STATES ( GTK_CSS_CHANGE_CLASS \ - | GTK_CSS_CHANGE_NAME \ - | GTK_CSS_CHANGE_ID \ - | GTK_CSS_CHANGE_FIRST_CHILD \ - | GTK_CSS_CHANGE_LAST_CHILD \ - | GTK_CSS_CHANGE_NTH_CHILD \ - | GTK_CSS_CHANGE_NTH_LAST_CHILD \ - | GTK_CSS_CHANGE_STATE \ - | GTK_CSS_CHANGE_HOVER \ - | GTK_CSS_CHANGE_DISABLED \ - | GTK_CSS_CHANGE_BACKDROP \ - | GTK_CSS_CHANGE_SELECTED \ - | GTK_CSS_CHANGE_SIBLING_CLASS \ - | GTK_CSS_CHANGE_SIBLING_NAME \ - | GTK_CSS_CHANGE_SIBLING_ID \ - | GTK_CSS_CHANGE_SIBLING_FIRST_CHILD \ - | GTK_CSS_CHANGE_SIBLING_LAST_CHILD \ - | GTK_CSS_CHANGE_SIBLING_NTH_CHILD \ - | GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD \ - | GTK_CSS_CHANGE_SIBLING_STATE \ - | GTK_CSS_CHANGE_SIBLING_HOVER \ - | GTK_CSS_CHANGE_SIBLING_DISABLED \ - | GTK_CSS_CHANGE_SIBLING_BACKDROP \ - | GTK_CSS_CHANGE_SIBLING_SELECTED) - -#define KEEP_STATES (~(BASE_STATES|GTK_CSS_CHANGE_SOURCE|GTK_CSS_CHANGE_PARENT_STYLE)) - - return (match & KEEP_STATES) | ((match & BASE_STATES) << GTK_CSS_CHANGE_PARENT_SHIFT); - -#undef BASE_STATES -#undef KEEP_STATES -} - void gtk_css_change_print (GtkCssChange change, GString *string) diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h index 8fc0c39c33..3846b1d581 100644 --- a/gtk/gtkcsstypesprivate.h +++ b/gtk/gtkcsstypesprivate.h @@ -452,16 +452,75 @@ typedef enum /*< skip >*/ { GTK_CSS_FONT_VARIANT_EAST_ASIAN_RUBY = 1 << 9 } GtkCssFontVariantEastAsian; -GtkCssChange _gtk_css_change_for_sibling (GtkCssChange match); -GtkCssChange _gtk_css_change_for_child (GtkCssChange match); +static inline GtkCssChange +_gtk_css_change_for_sibling (GtkCssChange match) +{ +#define BASE_STATES ( GTK_CSS_CHANGE_CLASS \ + | GTK_CSS_CHANGE_NAME \ + | GTK_CSS_CHANGE_ID \ + | GTK_CSS_CHANGE_FIRST_CHILD \ + | GTK_CSS_CHANGE_LAST_CHILD \ + | GTK_CSS_CHANGE_NTH_CHILD \ + | GTK_CSS_CHANGE_NTH_LAST_CHILD \ + | GTK_CSS_CHANGE_STATE \ + | GTK_CSS_CHANGE_HOVER \ + | GTK_CSS_CHANGE_DISABLED \ + | GTK_CSS_CHANGE_SELECTED \ + | GTK_CSS_CHANGE_BACKDROP) + +#define KEEP_STATES ( ~(BASE_STATES|GTK_CSS_CHANGE_SOURCE|GTK_CSS_CHANGE_PARENT_STYLE) \ + | GTK_CSS_CHANGE_NTH_CHILD \ + | GTK_CSS_CHANGE_NTH_LAST_CHILD) + + return (match & KEEP_STATES) | ((match & BASE_STATES) << GTK_CSS_CHANGE_SIBLING_SHIFT); + +#undef BASE_STATES +#undef KEEP_STATES +} + +static inline GtkCssChange +_gtk_css_change_for_child (GtkCssChange match) +{ +#define BASE_STATES ( GTK_CSS_CHANGE_CLASS \ + | GTK_CSS_CHANGE_NAME \ + | GTK_CSS_CHANGE_ID \ + | GTK_CSS_CHANGE_FIRST_CHILD \ + | GTK_CSS_CHANGE_LAST_CHILD \ + | GTK_CSS_CHANGE_NTH_CHILD \ + | GTK_CSS_CHANGE_NTH_LAST_CHILD \ + | GTK_CSS_CHANGE_STATE \ + | GTK_CSS_CHANGE_HOVER \ + | GTK_CSS_CHANGE_DISABLED \ + | GTK_CSS_CHANGE_BACKDROP \ + | GTK_CSS_CHANGE_SELECTED \ + | GTK_CSS_CHANGE_SIBLING_CLASS \ + | GTK_CSS_CHANGE_SIBLING_NAME \ + | GTK_CSS_CHANGE_SIBLING_ID \ + | GTK_CSS_CHANGE_SIBLING_FIRST_CHILD \ + | GTK_CSS_CHANGE_SIBLING_LAST_CHILD \ + | GTK_CSS_CHANGE_SIBLING_NTH_CHILD \ + | GTK_CSS_CHANGE_SIBLING_NTH_LAST_CHILD \ + | GTK_CSS_CHANGE_SIBLING_STATE \ + | GTK_CSS_CHANGE_SIBLING_HOVER \ + | GTK_CSS_CHANGE_SIBLING_DISABLED \ + | GTK_CSS_CHANGE_SIBLING_BACKDROP \ + | GTK_CSS_CHANGE_SIBLING_SELECTED) + +#define KEEP_STATES (~(BASE_STATES|GTK_CSS_CHANGE_SOURCE|GTK_CSS_CHANGE_PARENT_STYLE)) + + return (match & KEEP_STATES) | ((match & BASE_STATES) << GTK_CSS_CHANGE_PARENT_SHIFT); + +#undef BASE_STATES +#undef KEEP_STATES +} -GtkCssDimension gtk_css_unit_get_dimension (GtkCssUnit unit); +GtkCssDimension gtk_css_unit_get_dimension (GtkCssUnit unit) G_GNUC_CONST; -char * gtk_css_change_to_string (GtkCssChange change); +char * gtk_css_change_to_string (GtkCssChange change) G_GNUC_MALLOC; void gtk_css_change_print (GtkCssChange change, GString *string); -const char * gtk_css_pseudoclass_name (GtkStateFlags flags); +const char * gtk_css_pseudoclass_name (GtkStateFlags flags) G_GNUC_CONST; /* These hash functions are selected so they achieve 2 things: * 1. collision free among each other -- 2.30.2